First Normal Form
In this lesson, we will take a look at first normal form with some examples.
We'll cover the following
First normal form (1NF)#
First normal form (1NF) states that the domain of an attribute must include only atomic (simple, indivisible) values and that the value of any attribute in a tuple must be a single value from the domain of that attribute. Hence, 1NF disallows having a set of values, a tuple of values, or a combination of both as an attribute value for a single tuple. The only attribute values permitted by 1NF are single atomic (or indivisible) values. In other words, if a relation contains a multi-valued attribute, it violates 1NF.
To make things more clear, let’s consider the following examples.
Example 1#
STUDENT Relation
Roll_No | Name | Course |
---|---|---|
101 | Micheal | Databases, Operating Systems |
102 | Huber | Computer Networks, Data Structures |
The STUDENT relation is not in 1NF because of the multi-valued attribute Course
. To convert this table into 1NF, we must make sure that the values for the Course
attribute are atomic. This can be seen below
Roll_No | Name | Course |
---|---|---|
101 | Micheal | Databases |
101 | Micheal | Operating Systems |
102 | Huber | Computer Networks |
102 | Huber | Data Structures |
Now this table is in 1NF.
Example 2#
STUDENT Relation
Roll_No | Name | Phone |
---|---|---|
101 | Felix | (123) 456–7890 |
102 | Giorno | (456) 686–7821, (789) 316–9880 |
103 | Tom | NULL |
Again we can see that the second student has two phone numbers in a single tuple which violates 1NF. The table can be seen in the first normal form below:
Roll_No | Name | Phone |
---|---|---|
101 | Felix | (123) 456–7890 |
102 | Giorno | (456) 686–7821 |
102 | Giorno | (789) 316–9880 |
103 | Tom | NULL |
In the next lesson, we will look at how the second normal form reduces data redundancy.